(About 1,587 words)

Multi-core Processors
By Brian K. Lewis, Ph.D., member of the Sarasota PCUG, Florida
February 2006 issue of the Sarasota PC Monitor
www.spcug.org

When I first started researching central processing units (CPUs) my idea was to try to make some sense out of the naming/numbering schemes currently being used by Intel and AMD. This turned out to be an almost impossible task. Did you realize that Intel has more than 50 different Pentium 4 CPU models? That in each speed range there can be a dozen different models. They vary by cache size, socket size, hyper-threading or not, 64 bit or not, voltage and other parameters. As just one example, Intel's 3.2 GHz processor has 12 different models. AMD is just about as bad when you try to analyze their nomenclature. So, for the moment, I have given up on trying to find a simple way to categorize the currently available CPUs. Maybe next month.
Since the upper end of the CPU production now seems to be aimed at producing processors with more than one central core, I decided to look at that topic. So what does it mean that a CPU has more than one core? You can think of it as a single chip containing two or more central processors. It is like having two (or more) computers in one box. That said, I have to admit that it doesn't double your processing speed. At least, not yet. 
Servers and workstations used in business have had multiple processors for a number of years. Mainframe computers with multiple processors have also been around for years. In order to take advantage of multiple processing your operating system must be capable of recognizing and using multiple processors. Windows has had that capability since Windows NT/2000 and it is included in Windows XP. Intel introduced Hyper-threading technology in 2002. That allowed two different “threads” to be processed almost simultaneously. Going the next step and putting multiple processors on one single chip is the idea behind multi-core processors.  The AMD64 chip was originally designed to have a second core added at a later date. This became the current Athlon 64 X2 dual-core processor. Intel's Pentium D is also a dual-core processor.  In any multi-core processor each core is seen by the operating system as being a discrete processor as if the motherboard had two or more separate CPUs. Ideally this allows the computer to process more work within a given clock cycle.
The question is why would Intel and AMD want to complicate CPU design by putting these processors onto a single chip? The design is more expensive to produce. The primary answer to the questions is heat. In the fall of 2002 Intel indicated that it had a 4.0 GHz processor in production. That processor never reached the market. There was also talk about processors reaching 10 GHz. That has all changed and primarily due to the difficulty of reducing the heat output of these processors. When you have 125 million transistors in a very small space, as in Intel's Prescott processor series, there is a lot of heat produced. In fact, it takes special cooling to keep the processor from overheating and essentially burning itself up. I have a 3.0 GHz Intel “Prescott” processor in my computer and it runs at a consistent 400 Celsius (1040 F). That's only because I have an over sized copper heat sink and very large CPU fan. Ideally it should be running in the low 30's which would be about 50% of the maximum temperature.
Another problem is current or electron leakage. As the processor die size decreases and the number of transistors increases, there is a greater problem with leakage. Electron leakage from one pathway to another can result in data corruption. Die sizes are currently 90 nm and are anticipated to drop to 65 nm this year. Finally the power requirements increase with the increase in transistors. The increase in power is another component in the increasing amount of heat produced by the CPU.
Dual core processors are designed to run at lower clock speeds than the fastest of the single core processors. This reduces the heat output even though the dual core processors currently have 230 million transistors in a smaller space. Intel has also announced another dual core processor to be on the market this summer that will have 1.7 billion transistors! Their literature says they anticipate that by the end of 2006, 70% of their desktop and mobile processors will be dual-core. By the end of 2007 fully 90% of Intel's processors will be at least dual-core. AMD is moving just as fast in producing dual core processors. As the number of cores increase on a single die there will definitely be increases in heat output. Cooling requirements for these CPUs will definitely increase. The future of CPU cooling would seem to be water-cooled systems even for the home desktop market. Unless there is some technological break-through that will reduce the heat problem.
There are other bottlenecks that will become more important in multi-core systems. One is the bus that transmits information from the core to other components. With two or more cores sending information over the bus, both speed and bandwidth will have to increase to handle the increased load. The CPU depends on the computer RAM for the source of its data and instructions. Therefore memory speed is also important and will need to be increased. Finally, information is read from and written to the hard disk. Even with the increased speed and bandwidth associated with SATA drives, this can be the largest bottleneck in the system. So these problems can prevent the user from gaining the maximum advantage provided by a multi-core system. All that said, I have to admit that there will be some definite gains in processing speed with the multi-core systems. This has already been demonstrated by a number of third-party testers. However, it will be some time before a dual-core system will function at twice the speed of a single core system.
I keep talking about “threads” without really giving you any explanation of them. I don't think you really want to go into the programming background for this, so I will try to give you the simple explanation. A thread is a series of sequential programming steps or operations. In some instances, programming steps can be executed simultaneously. However, the program must be designed to allow this to happen. There are also problems associated with multi-threading that can slow down the overall operation. One problem is called “deadlock”. This is when two threads are each waiting for the other to complete its operations. This can result in neither thread reaching completion. For software developers, multi-threaded applications have much higher development costs than the current single-threaded applications. Although Intel's Hyper-threading CPU's have been around for several years, very little software has been written to take advantage of the dual-thread processing. Both Intel and AMD are working with software developers to produce more multi-threaded software applications. But it may be some time before the majority of software applications can take advantage of multi-core processors.
Intel has another technology it has developed for use in its multi-core chips. This is called “Foxton”. This allows a processor to adjust its speed and power requirements based on its processing load. Each process will have a base or minimum clock speed and a maximum speed. When the load is low, the processor can raise its clock speed up to a maximum level. This gives the processor more power for faster computing. If the load or the power requirement rises too high, the processor slows. All of this is more technology to simply reduce the system heat to manageable levels.
As I was writing this, Steve Jobs, at MAC World in San Francisco, announced the introduction of Intel based Macintosh computers using the Intel Core Duo processor. This processor was developed for the mobile computer market. It uses clock speeds from 1.6 GHz to 2.1 GHz. Although it has a lower clock speed, the dual processor will provide some performance gain. There will also be a lower drain on the battery. Several other companies have produced Windows based laptops using this same processor.
So how will multi-core computers affect the individual computer user? It should improve the efficiency of your computer by improving its multi-tasking ability. Since each core is essentially a separate processor, at least two applications can be run simultaneously. If the dual core also supports hyper-threading, as some of the Intel Pentium D CPUs do, then it could handle four applications or four threads in multi-threaded applications. Now you may think you really don't do any multi-tasking. However, it you are running an anti-virus program, a firewall, or any other application in the background while you also do word processing or emailing, then you are multi-tasking. A dual core CPU would permit this to happen more efficiently, if not more quickly. Frequently, I am writing, checking a spreadsheet and pulling data off the web. This is also multi-tasking.
I suspect that if you plan to replace your computer within the next year (or two), you will have a dual-core 64-bit processor in your system. With a couple of Gigabytes of RAM, you'll be all set to run Windows Vista as a 64-bit operating system.

Dr. Lewis is a former university & medical school professor. He has been working with personal computers for more than thirty years. He can be reached via e-mail at bwsail(at)yahoo.com.